PowerShell is a framework for task automation and configuration management which comes with its own scripting language and a command-line shell interface.
What sets PowerShell apart from other command-line shells is that it is object-based instead of text-based. All PowerShell commands operate on .NET objects and return .NET objects rather than pure text. This enabled PowerShell to be a lot more interactive and versatile.